package javaeSE.exception;

import java.util.Date;
import java.util.Scanner;

//import org.junit.Test;

/*
 * 一、异常体系结构
 * 
 * java.lang.Throwable
 * 		|-----java.lang.Error:一般不编写针对性的代码进行处理。
 * 		|-----java.lang.Exception:可以进行异常的处理
 * 			|------编译时异常(checked)
 * 					|-----IOException
 * 						|-----FileNotFoundException
 * 					|-----ClassNotFoundException
 * 			|------运行时异常(unchecked,RuntimeException)
 * 					|-----NullPointerException
 * 					|-----ArrayIndexOutOfBoundsException
 * 					|-----ClassCastException
 * 					|-----NumberFormatException
 * 					|-----InputMismatchException
 * 					|-----ArithmeticException
 * 
 * 
 * 
 * 面试题：常见的异常都有哪些？举例说明
 */
public class ExceptionTest {
    
    public static void main(String[] args) {
    
    
    }
	//******************以下是编译时异常***************************
	
	public static void test7(){
//        ctrl+c +s+ 8  快捷建 try catch  finally
	
	/*	try {
			File file = new File("hello.txt");
			FileInputStream fis = new FileInputStream(file);
			
			int data = fis.read();
			while(data != -1){
				System.out.print((char)data);
				data = fis.read();
			}
			
			fis.close();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
		
		}*/
		
	}

	//******************以下是运行时异常***************************
	//ArithmeticException

	public static void test6(){
    	int c = 5;
		int a = 10;
		int b = 0;
		System.out.println(a / b);
	}

	//InputMismatchException

	public static void test5(){
		Scanner scanner = new Scanner(System.in);
		int score = scanner.nextInt();
		System.out.println(score);
		scanner.close();
	}

	//NumberFormatException

	public static void test4(){
		String str = "123";
		str = "abc";
		int num = Integer.parseInt(str);
		
	}

	//ClassCastException  类型间转换不兼容时

	public static void test3(){
		Object obj = new Date();
		String str = (String)obj;
	}

	//IndexOutOfBoundsException

	public static void test2(){
		//ArrayIndexOutOfBoundsException
//		int[] arr = new int[10];
//		System.out.println(arr[10]);
		//StringIndexOutOfBoundsException
		String str = "abc";
		System.out.println(str.charAt(3));
	}

	//NullPointerException

	public static void test1(){

//		int[] arr = null;
//		System.out.println(arr[3]);

		String str = "abc";
		str = null;
		System.out.println(str.charAt(0));

	}


}
